<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>ReverseAbstractInterpreter (Closure Compiler)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="ReverseAbstractInterpreter (Closure Compiler)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../com/google/javascript/jscomp/type/FlowScope.html" title="interface in com.google.javascript.jscomp.type"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../com/google/javascript/jscomp/type/SemanticReverseAbstractInterpreter.html" title="class in com.google.javascript.jscomp.type"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?com/google/javascript/jscomp/type/ReverseAbstractInterpreter.html" target="_top">Frames</a></li>
<li><a href="ReverseAbstractInterpreter.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.google.javascript.jscomp.type</div>
<h2 title="Interface ReverseAbstractInterpreter" class="title">Interface ReverseAbstractInterpreter</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../com/google/javascript/jscomp/type/ChainableReverseAbstractInterpreter.html" title="class in com.google.javascript.jscomp.type">ChainableReverseAbstractInterpreter</a>, <a href="../../../../../com/google/javascript/jscomp/type/ClosureReverseAbstractInterpreter.html" title="class in com.google.javascript.jscomp.type">ClosureReverseAbstractInterpreter</a>, <a href="../../../../../com/google/javascript/jscomp/type/SemanticReverseAbstractInterpreter.html" title="class in com.google.javascript.jscomp.type">SemanticReverseAbstractInterpreter</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="strong">ReverseAbstractInterpreter</span></pre>
<div class="block">This interface defines what reversed abstract interpreters provide.
 <p>Abstract interpretation is the process of interpreting a program at an
 abstracted level (such as at the type level) instead of the concrete level
 (the flow of values). This reversed abstract interpreter reverses the
 abstract interpretation process by knowing the outcome of some computation
 and calculating a preciser view of the world than the view without knowing
 the outcome of the computation.</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/javascript/jscomp/type/FlowScope.html" title="interface in com.google.javascript.jscomp.type">FlowScope</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../com/google/javascript/jscomp/type/ReverseAbstractInterpreter.html#getPreciserScopeKnowingConditionOutcome(com.google.javascript.rhino.Node, com.google.javascript.jscomp.type.FlowScope, boolean)">getPreciserScopeKnowingConditionOutcome</a></strong>(<a href="../../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;condition,
                                       <a href="../../../../../com/google/javascript/jscomp/type/FlowScope.html" title="interface in com.google.javascript.jscomp.type">FlowScope</a>&nbsp;blindScope,
                                       boolean&nbsp;outcome)</code>
<div class="block">Calculates a precise version of the scope knowing the outcome of the
 condition.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getPreciserScopeKnowingConditionOutcome(com.google.javascript.rhino.Node, com.google.javascript.jscomp.type.FlowScope, boolean)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getPreciserScopeKnowingConditionOutcome</h4>
<pre><a href="../../../../../com/google/javascript/jscomp/type/FlowScope.html" title="interface in com.google.javascript.jscomp.type">FlowScope</a>&nbsp;getPreciserScopeKnowingConditionOutcome(<a href="../../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;condition,
                                                <a href="../../../../../com/google/javascript/jscomp/type/FlowScope.html" title="interface in com.google.javascript.jscomp.type">FlowScope</a>&nbsp;blindScope,
                                                boolean&nbsp;outcome)</pre>
<div class="block">Calculates a precise version of the scope knowing the outcome of the
 condition.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>condition</code> - the condition's expression</dd><dd><code>blindScope</code> - the scope without knowledge about the outcome of the
  condition</dd><dd><code>outcome</code> - the outcome of the condition</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../com/google/javascript/jscomp/type/FlowScope.html" title="interface in com.google.javascript.jscomp.type"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../com/google/javascript/jscomp/type/SemanticReverseAbstractInterpreter.html" title="class in com.google.javascript.jscomp.type"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?com/google/javascript/jscomp/type/ReverseAbstractInterpreter.html" target="_top">Frames</a></li>
<li><a href="ReverseAbstractInterpreter.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
